import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Random;

public class Offer_40 {
    /**
     * 剑指 Offer 40. 最小的k个数
     * 输入整数数组 arr ，找出其中最小的 k 个数。例如，输入4、5、1、6、2、7、3、8这8个数字，则最小的4个数字是1、2、3、4。
     *
     *
     *
     * 示例 1：
     *
     * 输入：arr = [3,2,1], k = 2
     * 输出：[1,2] 或者 [2,1]
     * 示例 2：
     *
     * 输入：arr = [0,1,2,1], k = 1
     * 输出：[0]
     * @param arr
     * @param k
     * @return
     */
    public int[] getLeastNumbers(int[] arr, int k) {
        if(arr.length==0){
            return new int[0];
        }
        Arrays.sort(arr);
        int[] newArr = new int[k];
        for (int i = 0; i < k; i++) {
            newArr[i]=arr[i];
        }
        return newArr;
    }
    public int[] getLeastNumbers_1(int[] arr, int k) {
       Queue<Integer> queue =  new PriorityQueue<>();

        for (int i :arr ) {
            queue.add(i);
        }
        int[] newArr = new int[k];
        for (int i = 0; i < k; i++) {
            newArr[i]=queue.poll();
        }
        return newArr;
    }
    public static void main(String[] args) {
        Queue<Integer> integerPriorityQueue = new PriorityQueue<>(7);

        Random rand = new Random();

        for(int i=0;i<7;i++){

            integerPriorityQueue.add(new Integer(rand.nextInt(100)));

        }
        for(int i=0;i<7;i++){
            Integer in = integerPriorityQueue.poll();
            System.out.println("Processing Integer:"+in);
        }



    }
}
